Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 21 MDI-Anwendungen
  gp 21.1 Einführung
  gp 21.2 Das MDI-Hauptfenster
  gp 21.3 Die Subfenster
  gp 21.4 Zugriff auf die Subfenster
    gp 21.4.1 Zugriff auf alle Subfenster
    gp 21.4.2 Zugriff auf das aktive Subfenster
  gp 21.5 Das Menü in einer MDI-Anwendung
    gp 21.5.1 Subfenster anordnen
    gp 21.5.2 Subfenster mit eigenen Menüs
  gp 21.6 Symbol- und Statusleiste des Subfensters
  gp 21.7 Die Liste der geöffneten untergeordneten Fenster
  gp 21.8 Beispiel einer MDI-Anwendung


Galileo Computing

21.8 Beispiel einer MDI-Anwendung  toptop

Das folgende Beispiel enthält einige der vorher besprochenen Elemente. Der Code beschränkt sich auf das Wesentliche und weist über die MDI-typischen Anweisungen keine weiteren Funktionalitäten auf.

Das Hauptmenü enthält zwei Menüelemente: Datei und Fenster. Datei hat ein Untermenü mit den beiden Punkten Neu und Beenden. Fenster ist nach dem Start der Anwendung deaktiviert und wird erst beim Öffnen des ersten Subfensters aktiviert. Falls zur Laufzeit alle Subfenster geschlossen werden, muss Fenster auch wieder deaktiviert werden. Wir erreichen das, indem wir den dazu erforderlichen Code bei Auslösung des Ereignisses MdiChildActivate, das nicht nur bei der Aktivierung, sondern zusätzlich auch beim Schließen eines Subfensters auftritt, ausführen. Im Ereignishandler wird die Eigenschaft ActiveMdiChild überprüft: Sie liefert Nothing, wenn kein Subfenster geöffnet.

Das Schließen des MDI-Haupt- und der MDI-Subfenster erfordert die ausdrückliche Bestätigung des Anwenders. Das ist in den Ereignissen FormClosing codiert. Beachten Sie, dass bei einem vom Hauptfenster eingeleiteten Schließvorgang ein geöffnetes Subfenster in jedem Fall noch die Möglichkeit hat, das Schließen zu verhindern.

Das Subfenster hat eine Menüleiste mit den Elementen Datei und Bearbeiten. Die beiden Datei-Menüs sollen zur Laufzeit in der Weise zusammengeführt werden, dass das des Subfensters das des Hauptfensters ergänzt. Darüber hinaus sollen die einzelnen Menüelemente nicht nur dem Untermenü angehängt, sondern konventionsgemäß platziert werden, d.  h. zuerst Neu, dann Speichern und Speichern unter und zum Schluss Beenden. Erreicht wird das durch die entsprechenden Einstellungen im Eigenschaftsfenster.

Das Menü Bearbeiten, das zur Menüleiste des Subfensters gehört, soll sich zwischen Datei und Fenster im Hauptfenster positionieren. Auch das wird durch die dazu erforderlichen Eigenschaftseinstellungen im Eigenschaftsfenster bewirkt.

Einen Nebeneffekt werden Sie feststellen, wenn Ihr Subfenster eine Menüleiste hat: Nach dem Zusammenführen wird im Subfenster auch dann die Menüleiste angezeigt, wenn sie aufgrund des Zusammenführens leer ist. Hier hilft nur eine Maßnahme: Legen Sie für das ToolStripMenu-Objekt Visible=True fest.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 21.3     Ausgabe des Beispiels »MdiDemo«


' ----------------------------------------------------------
' Beispiel: ...\Kapitel 21\MdiDemo
' ----------------------------------------------------------
Public Class Form1
Private documentCounter As Integer = 0
Private Sub ArrangeSubWindows(ByVal sender As Object, _
ByVal e As EventArgs) _
Handles mnuUntereinander.Click, _
mnuUeberlappend.Click, _
mnuNebeneinander.Click
If (sender Is mnuUeberlappend) Then
Me.LayoutMdi(MdiLayout.Cascade)
ElseIf (sender Is mnuUntereinander) Then
Me.LayoutMdi(MdiLayout.TileHorizontal)
Else
Me.LayoutMdi(MdiLayout.TileVertical)
End If
End Sub
Private Sub mnuNeu_Click(...) Handles mnuNeu.Click
Me.documentCounter += 1
Dim frm As Document = New Document()
frm.MdiParent = Me
frm.Text = "Dokument " & documentCounter
frm.Show()
mnuFenster.Enabled = True
End Sub
Private Sub Form1_MdiChildActivate(...) _
Handles MyBase.MdiChildActivate
' wenn kein Subfenster aktiv ist, das Menü 'Fenster'
' deaktivieren
If Me.ActiveMdiChild Is Nothing Then
Me.mnuFenster.Enabled = False
End If
End Sub
Private Sub Form1_FormClosing(...) Handles MyBase.FormClosing
Dim strMeldung As String = "Wollen Sie die Anwendung beenden?"
Dim dr As DialogResult = MessageBox.Show(strMeldung, _
Application.ProductName, _
MessageBoxButtons.YesNo)
If dr = Windows.Forms.DialogResult.No Then
e.Cancel = True
End If
End Sub
End Class

 

 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de